The advent of networked data processing systems, and, particularly, the network of networks referred to as the Internet, has spurred the introduction of distributed data processing services. In such systems, a client, typically remotely connected to the service provider via one or more networks, accesses a software application implemented on the remote data processing system which returns the results of the data processing activity to the client. It has become common to use the services represented by the World Wide Web (WWW) with its graphical user interface (GUI) orientation to provide the interface to such applications, which may be referred to a Web application Typically, in such distributed processing systems, the client sends a request to the server. The request may include one or more parameters which may be inputs to the particular service requested. On the server side, the system builds a Web page for returning the response to the requesting client. The server accesses a server page containing code that defines the Web page. Embedded in the code for generating the page, i.e. HTML script, is code that is executable by the server to generate the necessary HTML script to display the results on the client machine.
A Web browser running on the client machine is an application that can interpret the HTML and display the page on a conventional display such as a CRT monitor connected to the client machine. Commercially available Web browsers include Netscape Navigator®, Mozilla, Internet Explorer®, iCab, and Opera. Technologies for implementing distributed computing services in this way include Active Server Pages (ASP) and Java™ Server Pages (JSP). Additionally, such services may access server-side application software to perform some or all of the requested tasks via an environment-independent interprocess communication application program interface (API) such as DCOM (Distributed Component Object Model), CORBA (Common Object Request Broker Architecture) or Remote Method Invocation (RMI). In response to execution of the page by the browser, the application software generates dynamic data and returns the data to the client which then displays the data in accordance with the code defining the page.
However, it is not always convenient or efficient to run a Web application in a client-server mode. For example, during development of the application itself, it may be advantageous to deploy the application on the developer's machine for testing while still exploiting the net-centric interface discussed hereinabove. Additionally, in the user environment, it may be useful to deploy a particular Web service application on the user's machine, which may then be run locally using the same net-centric interface, so that, from the user's perspective, the functioning of the application is transparent whether run locally or remotely via a network. For example, a Web service application that handles employee travel reporting may also advantageously be deployed on an employee's machine, such as a laptop computer, so the employee may complete the report while travelling without the need for a network connection to access the application.
Thus, there is a need in the art for a mechanism to access a Web service application both remotely and locally, whereby a user may transparently run a Web service application in a client-server mode and a client-only mode.